home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 39
/
Aminet 39 (2000)(Schatztruhe)[!][Oct 2000].iso
/
Aminet
/
biz
/
swood
/
FW_AllInOne.lha
/
Makros
/
Compress.long
< prev
next >
Wrap
Text File
|
1998-01-17
|
10KB
|
364 lines
/*****************************************
* Compress *
* $VER: 3.0 © Heiko Schröder 09.01.98 *
*****************************************/
/*NEU: beim Laden wird Original gelöscht*/
/* Auswahl merken (Lha/lzx, löschen)*/
/*18.11. NEU: Code-optimiert */
/*Compress-opt mit Preferences*/
Parse ARG FW
if ~show('L',"rexxreqtools.library") then
if ~addlib('rexxreqtools.library',0,-30,0) then do
'ShowMessage 1 1 "Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
exit
end
IF ~show('L','tritonrexx.library') then
IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
'ShowMessage 2 1 "Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
exit
END
R='0A'X
If FW='' then do
Address='FinalW'
Options results
STATUS PORTNAME
FW = result
End
address(FW)
Status PathName
DName=result; If DName='' then DName='Unbenannt'
SIGNAL ON SYNTAX
address "REXX"
If open('Hilfe',"S:FW_Paket.prefs","R") then do
HilfeVerz=readln('Hilfe')
Call Close('Hilfe')
End
else HilfeVerz=''
FWP="FinalWriterPubScreen"
Mode=GetClip("MO"); If mode='' then mode=1
Orig=GetClip("OR"); If orig='' then orig=0
nr=0 /*Init*/
If exists("c:lha") then do
nr=nr+1
mxlist.nr = 'Lha'
LBefehl.nr="lha e "
SBefehl.nr="lha u "
Endung.nr =".FWLHA"
end
If exists("c:lzx") then do
nr=nr+1
mxlist.nr = 'Lzx'
LBefehl.nr="lzx x -X0 "
SBefehl.nr="lzx u -X0 "
Endung.nr=".FWLZX"
end
mxlist.0 =nr
LBefehl.0=nr
SBefehl.0=nr
Endung.0 =nr
If nr=0 then do
ret=rtezrequest("Kein Komprimierer vorhanden!"||R||"Weder LHA noch LZX...",,"Error...","rt_pubscrname=FinalWriterPubScreen")
Exit
END
apptags = 'TRCA_Name Compress',
'TRCA_LongName "Compress"',
'TRCA_Info "Makro für Finalwriter"',
'TRCA_Version "3.0 registered"',
'TRCA_Release "3"',
'TRCA_Date "09.01.98"',
'TAG_END'
windowtags = WindowID(1),
WindowPosition('TRWP_CENTERDISPLAY'),
WindowFlags('TRWF_NOSIZEGADGET|TRWF_NOMINTEXTWIDTH'),
PubScreenName(FWP),
WindowTitle('Compress'),
BeginMenu('Projekt'),
MenuItem('Q_Verlassen',104),
BeginMenu('?'),
MenuItem('?_Info',101),
MenuItem('H_Hilfe',103),
'HorizGroupEAC SpaceS',
'VertGroupEAC SpaceS',
'HorizGroupEAC',
TextN('Dateiname:'),
'SpaceS',
TextH(DName) 'TRAT_ID 7',
'EndGroup',
'SpaceS',
'HorizGroupEAC',
TextID('_Modus:',1) 'TRAT_Flags TROF_RIGHTALIGN',
'SpaceS',
MXGadget('mxlist',mode-1,1) 'TRAT_Flags TRCY_RIGHTLABELS',
'EndGroup',
'SpaceS',
'HorizGroupEAC',
TextID('_Original löschen:',4) 'TRAT_Flags TRCY_RIGHTLABELS TRAT_ID 4',
'SpaceS',
CheckBox(4) 'TRAT_Value' Orig,
'Space',
TextID('Dok_Voreinsteller:',6) 'TRAT_Flags TRCY_RIGHTLABELS TRAT_ID 6',
'SpaceS',
CheckBox(6) 'TRAT_Value' 0,
'EndGroup',
'SpaceS',
'HorizSeparator',
'SpaceS',
'HorizGroupEAC',
Button('_Laden',2),
'SpaceS',
Button('_Speichern',3),
'SpaceS',
Button('Speichern _als',5),
'EndGroup',
'SpaceS',
'EndGroup',
'SpaceS',
'EndGroup SpaceS',
'SpaceS',
'EndGroup',
'EndProject'
app = TR_CREATEAPP('TRCA_Name Compress')
l=0
IF app ~= '00000000'x THEN DO
window1 = TR_OPENPROJECT(app,windowtags)
IF window1 ~= '00000000'x THEN DO
ende = 0
DO WHILE ende ~= 1
address(FW)
Status PathName
DName=result; If DName='' then DName='Unbenannt'
Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',DName)
CALL TR_WAIT(app,'')
DO WHILE TR_HANDLEMSG(app,'event')
IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN event.trm_id = 1 THEN Do
mode = event.trm_data+1
END
WHEN event.trm_id = 4 THEN DO /*löschen*/
orig = event.trm_data
END
WHEN event.trm_id = 6 THEN DO /*DokSave-Einsteller*/
address(FW)
Preferences DocumentSave
Call TR_SETATTRIBUTE(window1,6,'TRAT_Value', 0)
END
OTHERWISE
NOP
END
END
IF event.trm_class = 'TRMS_ACTION' THEN DO
SELECT
WHEN event.trm_id = 2 THEN Call Laden
WHEN event.trm_id = 3 THEN Do
Status FileName
name=result
Call Speichern
END
WHEN event.trm_id = 5 THEN Do
name=""
Call Speichern
END
WHEN event.trm_id = 101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"Compress V3.0 für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
WHEN event.trm_id = 103 THEN address command "Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"Compress.guide"||d2c(34)
WHEN event.trm_id = 104 THEN ende=1
OTHERWISE
NOP
END
END
IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
void=SetClip("MO",Mode)
void=SetClip("OR",Orig)
ende = 1
END
END
END
CALL TR_CLOSEPROJECT(window1)
END
CALL TR_DELETEAPP(app)
END
ELSE
CALL quit('Kann das Fenster nicht öffnen',10)
Exit
Laden:
dir=rtfilerequest(,,Endung.mode||"-Datei auswählen...","Start","rt_pubscrname=FinalWriterPubScreen rtfi_matchpat=#?"||Endung.mode)
if dir~="" then do
directory=dir
dir=d2c(34)||dir||d2c(34)
pos=LastPos(Endung.mode,upper(dir))
if pos~=0 then do
file=left(dir,pos-1)||d2c(34)
filemerk=file
pos1 = max(index(file,':'),lastpos('/',file))
pos2=LastPos(d2c(34),file)
file=d2c(34)||Right(file,pos2-pos1)
possy1 = max(index(directory,':'),lastpos('/',directory))
directory=d2c(34)||left(directory,possy1)||d2c(34)
address command LBefehl.mode||dir directory
text="Dokument wird geladen."
Call OpenWin
address(FW)
Open filemerk
address command "delete "||filemerk||" QUIET"
CALL TR_CLOSEPROJECT(window2)
CALL TR_DELETEAPP(app2)
END
ELSE do
ret=rtezrequest("Dies ist keine komprimierte Datei!",,"Error...","rt_pubscrname=FinalWriterPubScreen")
END
END
address(FW)
Status PathName
DName=result; If DName='' then DName='Unbenannt'
Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',DName)
Return
/*****************
** Speichern
******************/
Speichern:
Status PathName
NamePath=result
If name="" then NamePath=""
text="Dokument "||NamePath||" wird gespeichert."
Call OpenWin
If name="" then do
SaveAs
If result=0 then break
Status FileName
name=result
End
Else do
NamePath=d2c(34)||NamePath||d2c(34)
Save NamePath
End
if name="" then do
CALL TR_CLOSEPROJECT(window2)
CALL TR_DELETEAPP(app2)
ret=rtezrequest("Dokument wurde NICHT gespeichert.",,"Achtung","rt_pubscrname=FinalWriterPubScreen")
return
end
Status PathName
NamePath=result
NamePath=d2c(34)||NamePath
address command "delete "NamePath".info"||d2c(34)" QUIET"
LhaName=NamePath||Endung.mode||d2c(34)
NamePath=NamePath||d2c(34)
address command SBefehl.mode||LhaName NamePath
if orig=1 then address command "delete "NamePath" QUIET"
CALL TR_CLOSEPROJECT(window2)
CALL TR_DELETEAPP(app2)
address(FW)
Status PathName
DName=result; If DName='' then DName='Unbenannt'
Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',DName)
return
/*****************
** Window öffnen
******************/
OpenWin:
windowtags = WindowID(2),
WindowPosition('TRWP_CENTERDISPLAY'),
WindowFlags('TRWF_NOZIPGADGET|TRWF_NOSIZEGADGET'),
PubScreenName(FWP),
'HorizGroupAC',
'Space',
'VertGroupA',
'Space',
TextID('Einen Moment Geduld.',1),
TextID(text,2),
'Space',
'EndGroup',
'Space',
'EndGroup',
'EndProject'
app2 = TR_CREATEAPP('TRCA_Name Save')
window2 = TR_OPENPROJECT(app2,windowtags)
Return
/*******************************************************************************
** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
*******************************************************************************/
SYNTAX:
CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)
/*******************************************************************************
** Script beenden
*******************************************************************************/
quit:
PARSE ARG message,rcode
IF app ~= '00000000'x THEN DO
IF message ~= '' THEN
ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
CALL TR_DELETEAPP(app)
END
ELSE DO
IF message ~= '' THEN DO
SAY message
SAY
OPTIONS PROMPT 'Bitte <RETURN> drücken'
PULL taste
END
END
address command "flushtrx all"
EXIT(rcode)